草庐IT

c++ - SIMD C++ 库

全部标签

c++ - 如何确定哪个动态库负责创建指针?

假设您有一个程序使用dlopen()加载多个共享对象/动态库。给定一个指向全局对象(例如静态成员变量)的指针,是否可以确定该指针分配在哪个库的边界? 最佳答案 您可以使用文件/proc/self/maps解析进程映射并查看指针地址的边界,全局变量将位于.data中或.bss段。示例库lib.c:staticintobject;int*dummy(void){return&object;}test.c,为简单起见未处理的错误:#include#include#include#include#include#includestaticv

c++ - 如何确定哪个动态库负责创建指针?

假设您有一个程序使用dlopen()加载多个共享对象/动态库。给定一个指向全局对象(例如静态成员变量)的指针,是否可以确定该指针分配在哪个库的边界? 最佳答案 您可以使用文件/proc/self/maps解析进程映射并查看指针地址的边界,全局变量将位于.data中或.bss段。示例库lib.c:staticintobject;int*dummy(void){return&object;}test.c,为简单起见未处理的错误:#include#include#include#include#include#includestaticv

c++ - 为什么没有 cdirent 或 sys/cstat

我正在编写一个循环访问目录所有条目的C++代码,并决定使用dirent.h.因为我使用的是C++,所以我决定使用C++标准来包含C库文件[即在库名称前加上c并删除末尾的.h]在不添加任何功能的情况下,我决定编译我的程序一次以查看是否确实存在cdirent或sys/cstat。g++抛出一个错误,告诉我这些文件不存在#include#include#include#includeusingnamespacestd;intmain(){}dummy.cpp:2:19:error:cdirent:Nosuchfileordirectorydummy.cpp:3:21:error:sys/cs

c++ - 为什么没有 cdirent 或 sys/cstat

我正在编写一个循环访问目录所有条目的C++代码,并决定使用dirent.h.因为我使用的是C++,所以我决定使用C++标准来包含C库文件[即在库名称前加上c并删除末尾的.h]在不添加任何功能的情况下,我决定编译我的程序一次以查看是否确实存在cdirent或sys/cstat。g++抛出一个错误,告诉我这些文件不存在#include#include#include#includeusingnamespacestd;intmain(){}dummy.cpp:2:19:error:cdirent:Nosuchfileordirectorydummy.cpp:3:21:error:sys/cs

c - 使用 Sparse 检查 C 代码

有没有人有过Sparse的经验??我似乎无法找到任何文档,因此我不清楚它产生的警告和错误。我尝试查看邮件列表和手册页,但实际上两者都没有太多内容。例如,我在我的一个文件中使用了INT_MAX。即使我#includelimits.h,这也会产生一个错误(未定义的标识符)。错误和警告有没有解释的地方? 最佳答案 据说,Sparse并不是为了成为lint。稀疏旨在生成任意代码的解析树,以便对其进行进一步分析。在您的示例中,您要么想要定义GNU_SOURCE(我相信它会打开__GNUC__),它会在limits.h中公开您需要的位我会避免单

c - 使用 Sparse 检查 C 代码

有没有人有过Sparse的经验??我似乎无法找到任何文档,因此我不清楚它产生的警告和错误。我尝试查看邮件列表和手册页,但实际上两者都没有太多内容。例如,我在我的一个文件中使用了INT_MAX。即使我#includelimits.h,这也会产生一个错误(未定义的标识符)。错误和警告有没有解释的地方? 最佳答案 据说,Sparse并不是为了成为lint。稀疏旨在生成任意代码的解析树,以便对其进行进一步分析。在您的示例中,您要么想要定义GNU_SOURCE(我相信它会打开__GNUC__),它会在limits.h中公开您需要的位我会避免单

c - Glibc 和 uClibc 并排在一个系统上

是否可以让基于glibc和uClibc的应用程序在一个系统上并行运行?背景:我们有基于gcc的二进制交叉编译器配置为与uClibc链接。我们已经用它交叉编译了glibc。现在我们要构建一些应用程序,以便它们将与glibc而不是uClibc链接。我们不想重建编译器。 最佳答案 glibc和uClibc并存,一些程序链接到一个,而其他程序链接到另一个,这没有问题。但是,附加库存在问题。您系统上的每个共享库都将针对glibc或uClibc(使用相应的header,为标准库函数定义不同的ABI)构建,因此例如,如果glibc程序和uClib

c - Glibc 和 uClibc 并排在一个系统上

是否可以让基于glibc和uClibc的应用程序在一个系统上并行运行?背景:我们有基于gcc的二进制交叉编译器配置为与uClibc链接。我们已经用它交叉编译了glibc。现在我们要构建一些应用程序,以便它们将与glibc而不是uClibc链接。我们不想重建编译器。 最佳答案 glibc和uClibc并存,一些程序链接到一个,而其他程序链接到另一个,这没有问题。但是,附加库存在问题。您系统上的每个共享库都将针对glibc或uClibc(使用相应的header,为标准库函数定义不同的ABI)构建,因此例如,如果glibc程序和uClib

使用 libtinfo 依赖项编译的带有 ncurses 的 C 代码

我最近在Linux上使用ncurses用C编写了一个扫雷器实现;在我的电脑上一切正常,但如果我尝试将编译后的二进制文件提供给其他人,他们通常会收到错误消息:加载共享库时出错:libtinfo.so.5:无法打开共享对象文件:没有这样的文件或目录如果我让他们重新编译代码,一切都很好。通过环顾四周,我发现这是libtinfo和libncurses之间的分离问题。它可以通过创建一些simlink来解决,但只有当用户具有root权限时,它才是可行的解决方案。截至此处(和其他来源),http://www.cyberspice.org.uk/blog/2009/12/24/tinfo-about-

使用 libtinfo 依赖项编译的带有 ncurses 的 C 代码

我最近在Linux上使用ncurses用C编写了一个扫雷器实现;在我的电脑上一切正常,但如果我尝试将编译后的二进制文件提供给其他人,他们通常会收到错误消息:加载共享库时出错:libtinfo.so.5:无法打开共享对象文件:没有这样的文件或目录如果我让他们重新编译代码,一切都很好。通过环顾四周,我发现这是libtinfo和libncurses之间的分离问题。它可以通过创建一些simlink来解决,但只有当用户具有root权限时,它才是可行的解决方案。截至此处(和其他来源),http://www.cyberspice.org.uk/blog/2009/12/24/tinfo-about-